The invention is related to the field of user authentication using one-time passwords.
Authentication techniques are used as a security measure in computer systems to control access to resources and services, so that access is limited to authorized personnel. There are myriad authentication schemes, many involving the use of a secret password that is known by a user and by a system in which the user needs authentication. In many password-based systems, the passwords are relatively static and often provide only weak protection.
One type of authentication scheme is a so-called ticket-based scheme in which a client computer interacts with an authentication server to obtain “tickets” which vouch for the identity and authorized status of the client among computers participating in the authentication scheme. The client presents the tickets to service servers when requesting access to a service or other resource (for example, to a file system or database hosted by a service server), and the service servers provide requested access to the client on the basis of the tickets so presented (i.e., access is granted if the client presents a ticket which meets all applicable requirements for acceptance by a service server). One widely used ticket-based authentication scheme is known by the name “Kerberos”. A general description of the Kerberos scheme can be found in Neuman et al., “The Kerberos Network Authentication Service (V5)”, RFC 4120 published July 2005 by The Internet Society.
Ticket-based systems provide an ability for a user to be authenticated to multiple servers without the servers requiring knowledge of a user's password, for example. Instead, the servers (and in fact the clients as well) can rely on a known trusted third party to vouch for the authorized status of potentially many users which may be unknown to the service servers. In Kerberos systems, for example, the primary authentication function is part or all of a “key distribution center” that performs a variety of services pertaining to the proper granting of tickets used for authentication purposes throughout the system. However, even in a complex ticket-based scheme such as Kerberos, the key distribution center or similar central authority interacts with a user partly on the basis of a traditional user password which is known to both the client and the key distribution center.
Also known are systems employing so-called “one-time passwords” or OTPs. In one such system, a hardware device referred to as a “token” applies a known combination function (such as an encryption algorithm) to a secret key value and a dynamic (time-based) value to generate dynamic authentication codes or OTPs. A separate verification computer shares the secret key value and has a time base that is synchronized with that of the token to an acceptable degree, and thus can use the same combination function to generate the same stream of OTPs as the token. In use, a user obtains an OTP from the token as part of being authenticated in some operating environment, such as accessing an on-line service, performing a retail transaction, etc. The OTP from the user is sent to the verification computer along with an identification of the user and/or token. The verification computer uses the user/device identifier to select the secret key value for the device. The verification computer then performs the combination function to generate an OTP, and compares the generated OTP with the OTP received from the user. A match indicates a successful authentication, and in a typical application the verification computer transmits a message back to the operating environment indicating whether the authentication was successful. This indication can be used to enable user access to a resource or the completion of a transaction, for example. A description of one specific arrangement of this type of OTP authentication can be found in Brainard et al., “Method And Apparatus For Performing Enhanced Time-Based Authentication”, U.S. Pat. No. 7,363,494 issued Apr. 22, 2008.